/*!
 * jQuery-ajaxTransport-XDomainRequest - v1.0.4 - 2015-03-05
 * https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest
 * Copyright (c) 2015 Jason Moon (@JSONMOON)
 * Licensed MIT (/blob/master/LICENSE.txt)
 */
   //判断图片是否损坏
function imgError(){ 
    var img = event.srcElement; 
    img.src = "https://mms0.baidu.com/it/u=1402893264,594888051&fm=15&gp=0.jpg&fmt=auto";
    img.onerror = null; //控制不要一直跳动 
}
(function(factory) {
    if (typeof define === 'function' && define.amd) {
      // AMD. Register as anonymous module.
      define(['jquery'], factory);
    } else if (typeof exports === 'object') {
      // CommonJS
      module.exports = factory(require('jquery'));
    } else {
      // Browser globals.
      factory(jQuery);
    }
  }(function($) {
  
  // Only continue if we're on IE8/IE9 with jQuery 1.5+ (contains the ajaxTransport function)
  if ($.support.cors || !$.ajaxTransport || !window.XDomainRequest) {
    return $;
  }
  
  var httpRegEx = /^(https?:)?\/\//i;
  var getOrPostRegEx = /^get|post$/i;
  var sameSchemeRegEx = new RegExp('^(\/\/|' + location.protocol + ')', 'i');
  
  // ajaxTransport exists in jQuery 1.5+
  $.ajaxTransport('* text html xml json', function(options, userOptions, jqXHR) {
  
    // Only continue if the request is: asynchronous, uses GET or POST method, has HTTP or HTTPS protocol, and has the same scheme as the calling page
    if (!options.crossDomain || !options.async || !getOrPostRegEx.test(options.type) || !httpRegEx.test(options.url) || !sameSchemeRegEx.test(options.url)) {
      return;
    }
  
    var xdr = null;
  
    return {
      send: function(headers, complete) {
        var postData = '';
        var userType = (userOptions.dataType || '').toLowerCase();
  
        xdr = new XDomainRequest();
        if (/^\d+$/.test(userOptions.timeout)) {
          xdr.timeout = userOptions.timeout;
        }
  
        xdr.ontimeout = function() {
          complete(500, 'timeout');
        };
  
        xdr.onload = function() {
          var allResponseHeaders = 'Content-Length: ' + xdr.responseText.length + '\r\nContent-Type: ' + xdr.contentType;
          var status = {
            code: 200,
            message: 'success'
          };
          var responses = {
            text: xdr.responseText
          };
          try {
            if (userType === 'html' || /text\/html/i.test(xdr.contentType)) {
              responses.html = xdr.responseText;
            } else if (userType === 'json' || (userType !== 'text' && /\/json/i.test(xdr.contentType))) {
              try {
                responses.json = $.parseJSON(xdr.responseText);
              } catch(e) {
                status.code = 500;
                status.message = 'parseerror';
                //throw 'Invalid JSON: ' + xdr.responseText;
              }
            } else if (userType === 'xml' || (userType !== 'text' && /\/xml/i.test(xdr.contentType))) {
              var doc = new ActiveXObject('Microsoft.XMLDOM');
              doc.async = false;
              try {
                doc.loadXML(xdr.responseText);
              } catch(e) {
                doc = undefined;
              }
              if (!doc || !doc.documentElement || doc.getElementsByTagName('parsererror').length) {
                status.code = 500;
                status.message = 'parseerror';
                throw 'Invalid XML: ' + xdr.responseText;
              }
              responses.xml = doc;
            }
          } catch(parseMessage) {
            throw parseMessage;
          } finally {
            complete(status.code, status.message, responses, allResponseHeaders);
          }
        };
  
        // set an empty handler for 'onprogress' so requests don't get aborted
        xdr.onprogress = function(){};
        xdr.onerror = function() {
          complete(500, 'error', {
            text: xdr.responseText
          });
        };
  
        if (userOptions.data) {
          postData = ($.type(userOptions.data) === 'string') ? userOptions.data : $.param(userOptions.data);
        }
        xdr.open(options.type, options.url);
        xdr.send(postData);
      },
      abort: function() {
        if (xdr) {
          xdr.abort();
        }
      }
    };
  });
  
  return $;
  
  }));